﻿// CLeftPage.cpp: 实现文件
//

#include "pch.h"
#include "管理系统.h"
#include "afxdialogex.h"
#include "CLeftPage.h"
#include "管理系统Dlg.h"


// CLeftPage 对话框

IMPLEMENT_DYNAMIC(CLeftPage, CDialogEx)

CLeftPage::CLeftPage(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_LEFT_Page, pParent)
{

}

CLeftPage::~CLeftPage()
{
}

void CLeftPage::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CLeftPage, CDialogEx)
	ON_WM_ERASEBKGND()
	ON_BN_CLICKED(IDC_BUTTON1, &CLeftPage::OnBnClickedButton1)
	ON_BN_CLICKED(IDC_Delete_Dlg, &CLeftPage::OnBnClickedDeleteDlg)

	ON_BN_CLICKED(IDC_ADD_StuScore_Dlg, &CLeftPage::OnBnClickedAddStuscoreDlg)
	ON_BN_CLICKED(IDC_SHOW_DATA, &CLeftPage::OnBnClickedShowData)
	ON_BN_CLICKED(IDC_SHOW_SCORE, &CLeftPage::OnBnClickedShowScore)
	ON_BN_CLICKED(IDC_BUTTON2, &CLeftPage::OnBnClickedButton2)
	ON_BN_CLICKED(IDC_BUTTON3, &CLeftPage::OnBnClickedButton3)
	ON_BN_CLICKED(IDC_BUTTON4, &CLeftPage::OnBnClickedButton4)
END_MESSAGE_MAP()


// CLeftPage 消息处理程序


BOOL CLeftPage::OnEraseBkgnd(CDC* pDC)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	CRect rect;
	GetClientRect(&rect);

	pDC->FillSolidRect(&rect,RGB(255,255,255));
	return true;



	//return CDialogEx::OnEraseBkgnd(pDC);
}


void CLeftPage::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	CADD_Stu_Dialog addstuDlg;
	
	//生成模态对话框：
	if (IDCANCEL == addstuDlg.DoModal())
		return;

	//初始化学号:
	m_stu.nStuNum = addstuDlg.m_stu_Num;


	//初始化姓名：
	wcscpy(m_stu.stuName ,addstuDlg.m_stu_Name.GetBuffer());

	//初始化性别;
	CString strSex;
	
	//性别不做操作：
	strSex = L"男";
	wcscpy(m_stu.stuSex, strSex.GetBuffer());

	//初始化兴趣：
	CString strInterst;
	if (addstuDlg.isSing)
	{
		strInterst += L"唱	;";
	}
	if(addstuDlg.isDance)
	{
		strInterst += L"跳	;";
	}
	if (addstuDlg.isRap)
	{
		strInterst += L"Rap	;";
	}
	if (addstuDlg.isBasketball)
	{
		strInterst += L"篮球	;";
	}
	wcscpy(m_stu.stuInterest, strInterst.GetBuffer());

	//初始化年龄：
	int age = _wtoi(addstuDlg.m_age);
	m_stu.stuAge = age;

	//初始化年级：
	wcscpy(m_stu.stuGrage, addstuDlg.m_stu_Grade.GetBuffer());

	//初始化专业：
	wcscpy(m_stu.stuMajor, addstuDlg.m_stu_Major.GetBuffer());

	//初始化班级：
	wcscpy(m_stu.stuClass, addstuDlg.m_stu_Class.GetBuffer());

	//初始化电话：
	wcscpy(m_stu.stuTel, addstuDlg.m_stu_Tel.GetBuffer());

	//初始化地址：
	wcscpy(m_stu.stuAddress, addstuDlg.m_stu_Address.GetBuffer());



	//传递给其父类对象：
	C管理系统Dlg* pMainDlg = (C管理系统Dlg*)AfxGetMainWnd();
	pMainDlg->m_rightPage.m_stu = m_stu;

	pMainDlg->m_rightPage.insertStudent(m_stu);

}



//删除学生按钮：
void CLeftPage::OnBnClickedDeleteDlg()
{
	// TODO: 在此添加控件通知处理程序代码

	int pos = d_Pos;
	if (pos < 0)
	{
		MessageBox(L"请先选择要删除信息的学生");
		return;
	}

	//删除确定：
	if (IDCANCEL == MessageBox(L"确认删除该学生信息？", L"tips", MB_OKCANCEL | MB_ICONINFORMATION))	return;


	m_list->DeleteItem(pos);

	UpdateData(false);

}



//添加学生成绩按钮：
void CLeftPage::OnBnClickedAddStuscoreDlg()
{
	// TODO: 在此添加控件通知处理程序代码

	int pos = d_Pos;
	if (pos < 0)
	{
		MessageBox(L"请先选择要添加的学生");
		return;
	}

	C_Score_Dialog dialog;

	//从m_list中获取学生基本信息：
	dialog.m_stu_Num = _wtoi(m_list->GetItemText(pos, 0));
	dialog.m_stu_Name = m_list->GetItemText(pos, 1);
	dialog.m_stu_Grade = m_list->GetItemText(pos, 5);
	dialog.m_stu_Major = m_list->GetItemText(pos, 6);
	dialog.m_stu_Class = m_list->GetItemText(pos, 7);

	if (IDCANCEL == dialog.DoModal())	return;

	//向m_scoreList中传入和写入信息：
	int cnt = m_scoreList->GetItemCount();

	CString str;
	str.Format(L"%d", dialog.m_stu_Num);
	m_scoreList->InsertItem(cnt, str);
	m_scoreList->SetItemText(cnt, 1, dialog.m_stu_Name);
	m_scoreList->SetItemText(cnt, 2, dialog.m_stu_Grade);
	m_scoreList->SetItemText(cnt, 3, dialog.m_stu_Major);
	m_scoreList->SetItemText(cnt, 4, dialog.m_stu_Class);

	str.Format(L"%.2lf", dialog.m_score_czxt);
	m_scoreList->SetItemText(cnt, 5, str);
	str.Format(L"%.2lf", dialog.m_score_wjyl);
	m_scoreList->SetItemText(cnt, 6, str);
	str.Format(L"%.2lf", dialog.m_score_c);
	m_scoreList->SetItemText(cnt, 7, str);
	str.Format(L"%.2lf", dialog.m_score_cpp);
	m_scoreList->SetItemText(cnt, 8, str);



	//UpdateData(false);
}


//展示学生信息：
void CLeftPage::OnBnClickedShowData()
{
	// TODO: 在此添加控件通知处理程序代码
	C管理系统Dlg* pMainDlg = (C管理系统Dlg*)AfxGetMainWnd();
	pMainDlg->m_rightPage.m_list.ShowWindow(SW_SHOW);
	pMainDlg->m_rightPage.m_scoreList.ShowWindow(SW_HIDE);

}


//展示学生成绩：
void CLeftPage::OnBnClickedShowScore()
{
	// TODO: 在此添加控件通知处理程序代码
	C管理系统Dlg* pMainDlg = (C管理系统Dlg*)AfxGetMainWnd();
	pMainDlg->m_rightPage.m_list.ShowWindow(SW_HIDE);
	pMainDlg->m_rightPage.m_scoreList.ShowWindow(SW_SHOW);
}


//修改学生信息：
void CLeftPage::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	int pos = d_Pos;
	if (pos < 0)
	{
		MessageBox(L"请先选择要修改的的学生");
		return;
	}

	//弹出对话框：
	CModify_Stu_Dialog modifyDlg;

	//遍历m_list:
	//初始化学号:
	modifyDlg.m_stu_Num = _wtoi(m_list->GetItemText(pos, 0));
	//初始化姓名：
	modifyDlg.m_stu_Name = m_list->GetItemText(pos, 1);
	//性别不用更改，就只有男
	//初始化兴趣：
	CString strInterst;
	strInterst = m_list->GetItemText(pos, 3);
	modifyDlg.isSing = modifyDlg.isDance = modifyDlg.isRap = false;
	if (-1 != strInterst.Find(L"唱	;"))
	{
		modifyDlg.isSing = true;
	}
	if (-1 != strInterst.Find(L"跳	;"))
	{
		modifyDlg.isDance = true;
	}
	if (-1 != strInterst.Find(L"Rap	;"))
	{
		modifyDlg.isRap = true;
	}
	if (-1 != strInterst.Find(L"篮球	;"))
	{
		modifyDlg.isBasketball = true;
	}
	//初始化年龄：
	modifyDlg.m_age = m_list->GetItemText(pos, 4);
	//初始化年级：
	modifyDlg.m_stu_Grade = m_list->GetItemText(pos, 5);
	//初始化专业：
	modifyDlg.m_stu_Major = m_list->GetItemText(pos, 6);
	//初始化班级：
	modifyDlg.m_stu_Class = m_list->GetItemText(pos, 7);
	//初始化电话：
	modifyDlg.m_stu_Tel = m_list->GetItemText(pos, 8);
	//初始化地址：
	modifyDlg.m_stu_Address = m_list->GetItemText(pos, 9);

	//弹出模态对话框：
	if (IDCANCEL == modifyDlg.DoModal())
	{
		return;
	}



	//修改信息：
	CString str;
	//学号：
	str.Format(L"%d", modifyDlg.m_stu_Num);
	m_list->SetItemText(pos, 0, str);
	//姓名：
	m_list->SetItemText(pos, 1, modifyDlg.m_stu_Name);
	//性别不用修改
	//兴趣：
	strInterst.Empty();		//先清空兴趣字符串
	if (modifyDlg.isSing)
	{
		strInterst += L"唱	;";
	}
	if (modifyDlg.isDance)
	{
		strInterst += L"跳	;";
	}
	if (modifyDlg.isRap)
	{
		strInterst += L"Rap	;";
	}
	if (modifyDlg.isBasketball)
	{
		strInterst += L"篮球	;";
	}
	m_list->SetItemText(pos, 3, strInterst);
	//年龄：
	m_list->SetItemText(pos, 4, modifyDlg.m_age);
	//班龄：
	m_list->SetItemText(pos, 5, modifyDlg.m_stu_Grade);
	//专业：
	m_list->SetItemText(pos, 6, modifyDlg.m_stu_Major);
	//班级：
	m_list->SetItemText(pos, 7, modifyDlg.m_stu_Class);
	//电话：
	m_list->SetItemText(pos, 8, modifyDlg.m_stu_Tel);
	//地址：
	m_list->SetItemText(pos, 9, modifyDlg.m_stu_Address);


}


//删除学生成绩信息：
void CLeftPage::OnBnClickedButton3()
{
	// TODO: 在此添加控件通知处理程序代码
	//UpdateData(true);


	int pos = s_Pos;
	if (pos < 0)
	{
		MessageBox(L"请先选择要删除成绩信息的学生");
		return;
	}

	//删除确定：
	if (IDCANCEL == MessageBox(L"确认删除该学生成绩？", L"tips", MB_OKCANCEL | MB_ICONINFORMATION))	return;



	m_scoreList->DeleteItem(pos);

	UpdateData(false);

}


void CLeftPage::OnBnClickedButton4()
{
	// TODO: 在此添加控件通知处理程序代码
	int pos = s_Pos;
	if (pos < 0)
	{
		MessageBox(L"请先选择要修改成绩信息的学生");
		return;
	}

	CModify_StuScore_Dlg dialog;

	//遍历m_scoreList:
	//初始化学号:
	dialog.m_stu_Num = _wtoi(m_scoreList->GetItemText(pos, 0));
	//初始化姓名：
	dialog.m_stu_Name = m_scoreList->GetItemText(pos, 1);
	//初始化年级：
	dialog.m_stu_Grade = m_scoreList->GetItemText(pos, 2);
	//初始化专业：
	dialog.m_stu_Major = m_scoreList->GetItemText(pos, 3);
	//初始化班级：
	dialog.m_stu_Class = m_scoreList->GetItemText(pos, 4);

	dialog.m_score_czxt = _wtoi(m_list->GetItemText(pos, 5));


	if (IDCANCEL == dialog.DoModal())
		return;

	










}

